<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{padding: 0; margin: 0;}
        li{
            height: 40px;
            line-height: 40px;
            border: 1px dashed #000;
            margin-top: 10px;
        }
    </style>
</head>
<body>
    <div class="wrap">
        <div>
            <button class="addEle">新增</button>
            <button class="delEle">删除</button>
        </div>
        <ul class="list">
            <li class="first">01</li>
            <li>02</li>
            <li class="mid">03</li>
            <li>04</li>
            <li>05</li>
            <li class="last">06</li>
        </ul>
    </div>
</body>
<script>
   
    // 传统获取元素的方法   => 返回的是元素的集合 HTMLCollection
    // document.getElementsByClassName()
    // document.getElementsByTagName()
    // document.getElementsByName()

    // parentEle.getElementsByClassName()
    // parentEle.getElementsByTagName()

    // querySelectorAll()  => 返回的是元素的集合  NodeList

    // 区别:
    // 传统获取元素的方法,会根据页面同类型(tagName),同类名(class)元素的增加或减少,自动更新元素的集合 => 和页面保持一致
    // querySelectorAll() 一经获取,集合不在改变, 无论增加元素和减少元素 都返回原本的集合

    // 使用技巧:
    // 如果需要集合随页面更新 => 传统获取元素的方法
    // 如果确定元素在页面中定死 (不会新增/不会删除) =>  querySelectorAll() 获取元素更方便

    var ul = document.querySelector(".list");
    var addEle = document.querySelector(".addEle");
    var delEle = document.querySelector(".delEle");

    var liList = ul.getElementsByTagName("li");
    console.log(liList);

    var liNodes = document.querySelectorAll(".list li");
    console.log(liNodes);


    // 点击新增按钮 => 新增一个li, 放到.list中所有元素的最后方

    addEle.onclick = function(){
        var ele = document.createElement("li"); // 创建元素节点 li => 赋值给变量ele
        // console.log(ele);

        // 被创建的元素节点就是一个正常的元素
        ele.setAttribute("class","newLi"); //新增属性
        ele.innerText = "我是新增的li"; // 设置文本
        ele.style.background = randColor(); // 设置样式
        ele.onclick = function(){  // 绑的事件
            console.log("我被点击了");
        }

        ul.appendChild(ele); // 追加节点

        console.log(liNodes);
    }

    delEle.onclick = function(){
        ul.removeChild(ul.lastElementChild)

        console.log(liNodes);
    }



    // rgb(0-255,0-255,0-255)
    function randColor(){
        function randNum(){ // 随机0-255的数
            return Math.floor(Math.random()*256);
        }
        return `rgb(${randNum()},${randNum()},${randNum()})`
    }



</script>
</html>